﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;


public partial class Maestros_ArchivosPlanos : Global
{
    Archivo objArchivo = new Archivo();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            this.LlenarComboArchivos();            
        }        
    }

    private void LlenarComboArchivos()
    {
        EnlazaDropDownList(this.drpArchivo, objArchivo.GetArchivos().Tables[0], "nombre", "id");        
    }

    protected void drpArchivo_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.LlenarGrillas();
    }

    private void LlenarGrillas()
    {
        try
        {
            //Se obtiene la información del archivo
            DataSet dts = objArchivo.GetArchivo(Convert.ToInt32(this.drpArchivo.SelectedValue));

            this.lblDescripcion.Text = dts.Tables[0].Rows[0]["descripcion"].ToString();

            this.grdDocumento.DataSource = null;
            this.grdMovimiento.DataSource = null;

            if (dts.Tables[1].Rows.Count > 0)
                this.grdDocumento.DataSource = dts.Tables[1];

            if (dts.Tables[2].Rows.Count > 0)
                this.grdMovimiento.DataSource = dts.Tables[2];

            this.grdDocumento.DataBind();
            this.grdMovimiento.DataBind();
        }
        catch (Exception ex)
        {
            oGJS.ScriptAlert("CEDIS - No se pudo traer la ínformación del archivo: " + FormatearMensajeError(ex.Message), false, Page);
        }    
    }

    #region "Eventos grilla de documento"

    protected void grdDocumento_RowEditing(object sender, GridViewEditEventArgs e)
    {
        this.grdDocumento.EditIndex = e.NewEditIndex;
        this.LlenarGrillas();
    }

    protected void grdDocumento_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        this.grdDocumento.EditIndex = -1;
        this.LlenarGrillas();
    }
    protected void grdDocumento_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        //Se obtiene el id del registro y el valor
        int id = Convert.ToInt32(this.grdDocumento.DataKeys[e.RowIndex].Value.ToString());
        TextBox txtValor = (TextBox)this.grdDocumento.Rows[e.RowIndex].Cells[4].Controls[0];
        string tipo = Server.HtmlDecode(this.grdDocumento.Rows[e.RowIndex].Cells[2].Text);
        int longitud = Convert.ToInt32(this.grdDocumento.Rows[e.RowIndex].Cells[3].Text);

        try
        {
            //Se valida el valor
            string validacion = this.objArchivo.ValidarItem(txtValor.Text.Trim(), tipo, longitud);

            if (validacion.Length == 0)
            {
                this.objArchivo.ActualizarArchivoItem(id, txtValor.Text.Trim());
                this.grdDocumento.EditIndex = -1;
                this.LlenarGrillas();
            }
            else
            {
                oGJS.ScriptAlert(validacion, false, Page);
            }
        }
        catch (Exception ex)
        {
            oGJS.ScriptAlert("No se pudo actualizar la información: " + FormatearMensajeError(ex.Message), false, Page);
        }
    }

    #endregion

    #region "Eventos grilla de movimientos"

    protected void grdMovimiento_RowEditing(object sender, GridViewEditEventArgs e)
    {
        this.grdMovimiento.EditIndex = e.NewEditIndex;
        this.LlenarGrillas();
    }
    protected void grdMovimiento_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        //Se obtiene el id del registro y el valor
        int id = Convert.ToInt32(this.grdMovimiento.DataKeys[e.RowIndex].Value.ToString());
        TextBox txtValor = (TextBox)this.grdMovimiento.Rows[e.RowIndex].Cells[4].Controls[0];
        string tipo = Server.HtmlDecode(this.grdMovimiento.Rows[e.RowIndex].Cells[2].Text);
        int longitud = Convert.ToInt32(this.grdMovimiento.Rows[e.RowIndex].Cells[3].Text);

        try
        {
            //Se valida el valor
            string validacion = this.objArchivo.ValidarItem(txtValor.Text.Trim(), tipo, longitud);

            if (validacion.Length == 0)
            {
                this.objArchivo.ActualizarArchivoItem(id, txtValor.Text.Trim());
                this.grdMovimiento.EditIndex = -1;
                this.LlenarGrillas();
            }
            else
            {
                oGJS.ScriptAlert(validacion, false, Page);
            }
        }
        catch (Exception ex)
        {
            oGJS.ScriptAlert("No se pudo actualizar la información: " + FormatearMensajeError(ex.Message), false, Page);
        }
    }
    protected void grdMovimiento_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        this.grdMovimiento.EditIndex = -1;
        this.LlenarGrillas();
    }

    #endregion
}